home *** CD-ROM | disk | FTP | other *** search
- ;STAIRCAL.LSP
- ;V 1.0
- ;John Charles Vogt
- ;Kennedy Associates, Architects, Inc.
- ;St. Louis, MO 63105 314 367 8188
- (DEFUN RDEIGHT (X) **** ROUND TO EIGHTH INCH ****
- (IF (> (REM(* X 8)) 0.5)(SETQ X (+ X 0.125)))
- (SETQ X (/ (FLOAT (FIX (* X 8))) 8))
-
-
- )
- (DEFUN C:STAIRCALC () **** STAIR RISER AND RUN CALCULATIONS*****
- (SETVAR "CMDECHO" 0)
- (PROMPT "CALCULATIONS...")(TERPRI)(TERPRI)
- (SETQ HFT (FIX (/ H 12))) (SETQ HIN (REM H 12))
- (PROMPT "The height picked was ")(PRIN1 HFT)(PROMPT "-")(PRIN1 HIN)(TERPRI)
- (IF (> H 144)(PROMPT "Note that a single run of over 12 ft is not permitted by most codes!"))
- (TERPRI)
- (SETQ TH (GETREAL "Thickness of upper floor to underside of finished ceiling-IN INCHES! <default 0> "))
- (IF (NULL TH)(SETQ TH 0))
- (TERPRI)
- (PROMPT "1.BOCA Assem & Inst 2.BOCA One and Two Fam 3.BOCA Others 4.NFiPA ")(TERPRI)
- (SETQ CODE (GETINT "Number of code to use: <default 3> "))
- (IF (NULL CODE)(SETQ CODE 3))
- (IF (= CODE 1)(PROGN (SETQ MAXR 7.5)(SETQ MINT 10)))
- (IF (= CODE 2)(PROGN (SETQ MAXR 8.25)(SETQ MINT 9)))
- (IF (= CODE 3)(PROGN (SETQ MAXR 8)(SETQ MINT 9)))
- (IF (= CODE 4)(PROGN (SETQ MAXR 7)(SETQ MINT 11)))
- (PROMPT "Code selected was no. ")(PRIN1 CODE)(PROMPT " Max riser is ")
- (PRIN1 MAXR)(PROMPT " and Min tread is ")(PRIN1 MINT)
- (TERPRI)
- (SETQ NO1 (1+ (FIX (/ H MAXR))))
- (SETQ R1 (/ H NO1))
- (SETQ T1 (- 25 (* 2 R1)))(SETQ T1 (RDEIGHT T1))
- (IF (< T1 MINT)(SETQ T1 MINT))
- (SETQ RUN1 (* (1- NO1)T1))
- (SETQ RFT1 (FIX (/ RUN1 12)))(SETQ RIN1 (REM RUN1 12))
- (SETQ OPNG1 (RDEIGHT (/(*(* NO1 T1)(+ 80 TH))H)))
- (SETQ OFT1 (FIX (/ OPNG1 12)))(SETQ OIN1 (REM OPNG1 12))
- (SETQ NO2 (1+ NO1))
- (SETQ R2 (/ H NO2))(IF (< R2 6)(SETQ R2 6))
- (SETQ T2 (- 25 (* 2 R2)))(SETQ T2 (RDEIGHT T2))
- (IF (< T2 MINT)(SETQ T2 MINT))
- (SETQ RUN2 (* (1- NO2)T2))
- (SETQ RFT2 (FIX (/ RUN2 12)))(SETQ RIN2 (REM RUN2 12))
- (SETQ OPNG2 (RDEIGHT (/(*(* NO2 T2)(+ 80 TH))H)))
- (SETQ OFT2 (FIX (/ OPNG2 12)))(SETQ OIN2 (REM OPNG2 12))
- (IF (= R2 6)(SETQ NO3 NO2)(SETQ NO3 (1+ NO2)))
- (SETQ R3 (/ H NO3))(IF (< R3 6)(SETQ R3 6))
- (SETQ T3 (- 25 (* 2 R3)))(SETQ T3 (RDEIGHT T3))
- (IF(< T3 MINT)(SETQ T3 MINT))
- (SETQ RUN3(* (1- NO3)T3))
- (SETQ RFT3 (FIX (/ RUN3 12)))(SETQ RIN3 (REM RUN3 12))
- (SETQ OPNG3 (RDEIGHT (/(*(* NO3 T3)(+ 80 TH))H)))
- (SETQ OFT3 (FIX (/ OPNG3 12)))(SETQ OIN3 (REM OPNG3 12))
- (TERPRI)
- (PROMPT"Choice no. risers treads run opening required")(TERPRI)
- (PROMPT"1 ")(IF (< NO1 10)(PROMPT " "))(PRIN1 NO1)(PROMPT " ")
- (PRIN1(FLOAT R1))(PROMPT " ")(IF (< T1 10)(PROMPT " "))(PRIN1(FLOAT T1))
- (PROMPT " ")(IF (< RFT1 10)(PROMPT " "))(PRIN1 RFT1)(PROMPT "-")(IF (< RIN1 10)(PROMPT " "))(PRIN1 (FLOAT RIN1))
- (PROMPT " ")(IF (< OFT1 10)(PROMPT " "))(PRIN1 OFT1)(PROMPT "-")(IF (< OIN1 10)(PROMPT " "))(PRIN1 (FLOAT OIN1))(TERPRI)
- (PROMPT"2 ")(IF (< NO2 10)(PROMPT " "))(PRIN1 NO2)(PROMPT " ")
- (PRIN1(FLOAT R2))(PROMPT" ")(IF (< T2 10)(PROMPT" "))(PRIN1(FLOAT T2))
- (PROMPT " ")(IF (< RFT2 10)(PROMPT " "))(PRIN1 RFT2)(PROMPT "-")(IF (< RIN2 10)(PROMPT " "))(PRIN1 (FLOAT RIN2))
- (PROMPT " ")(IF (< OFT2 10)(PROMPT " "))(PRIN1 OFT2)(PROMPT "-")(IF (< OIN2 10)(PROMPT " "))(PRIN1 (FLOAT OIN2))(TERPRI)
- (PROMPT"3 ")(IF (< NO3 10)(PROMPT " "))(PRIN1 NO3)(PROMPT " ")
- (PRIN1(FLOAT R3))(PROMPT" ")(IF (< T3 10)(PROMPT" "))(PRIN1(FLOAT T3))
- (PROMPT " ")(IF (< RFT3 10)(PROMPT " "))(PRIN1 RFT3)(PROMPT "-")(IF (< RIN3 10)(PROMPT " "))(PRIN1 (FLOAT RIN3))
- (PROMPT " ")(IF (< OFT3 10)(PROMPT " "))(PRIN1 OFT3)(PROMPT "-")(IF (< OIN3 10)(PROMPT " "))(PRIN1 (FLOAT OIN3))(TERPRI)
- (TERPRI)(TERPRI)
- (ANTHRT)
- )
- (DEFUN ANTHRT () **** ANOTHER TREAD WIDTH ****
- (SETQ ANS (GETSTRING "Would you like the run-opening data for another tread width? <N>: "))
- (IF (EQ ANS "y")(SETQ ANS "Y"))
- (SETQ ANSW "Y")
- (WHILE (EQ ANSW ANS)
- (SETQ T (GETREAL "Tread width: "))
- (IF (< T MINT)(PROGN
- (SETQ T MINT)
- (PRIN1 (FLOAT T))
- (PROMPT " is the minimum allowed by the code chosen!")
- (TERPRI) )
- )
- (SETQ NO (GETREAL "Number of risers: "))
- (IF (< NO NO1)(PROGN
- (SETQ NO NO1)
- (PRIN1 NO)
- (PROMPT " is the min. number of risers required to get max. riser size!")
- (TERPRI) )
- )
- (SETQ RUN (* (1- NO) T)) (SETQ RUN (RDEIGHT RUN))
- (SETQ RFT (FIX (/ RUN 12))) (SETQ RIN (REM RUN 12))
- (SETQ OPNG (/ (* (* NO T) (+ 80 TH))H)) (SETQ OPNG (RDEIGHT OPNG))
- (SETQ OFT (FIX (/ OPNG 12))) (SETQ OIN (REM OPNG 12))
- (PROMPT" ") (IF (< T 10) (PROMPT" ")) (PRIN1 (FLOAT T)) (PROMPT" ")
- (IF (< RFT 10)(PROMPT" "))(PRIN1 RFT)(PROMPT"-")(IF (< RIN 10)(PROMPT" "))(PRIN1 (FLOAT RIN))(PROMPT" ")
- (IF (< OFT 10)(PROMPT" "))(PRIN1 OFT)(PROMPT"-")(IF (< OIN 10)(PROMPT" "))(PRIN1 (FLOAT OIN))
- (TERPRI)(TERPRI)
- (SETQ ANS(GETSTRING"Would you like the run-opening data for another tread width? <N>: ")) ) )